Ext.define('SistIntegral.CInventario.Inventario', {

    alias: "FrmControlInventario",
    forward: true,

    Formulario: function(btn) {

        var CmbCCostoProyecto = new SistIntegral.Componentes.Objetos().ComboCCostoProyecto();
        var CmbCatalogo = new SistIntegral.Componentes.Objetos().ComboCatalogo();
        var CmbProveedor = new SistIntegral.Componentes.Objetos().ComboProveedor();
        var CmbMes = new SistIntegral.Componentes.Objetos().ComboMes();
        var CmbAnio = new SistIntegral.Componentes.Objetos().ComboAnio();
        var CmbMarca = new SistIntegral.Componentes.Objetos().ComboMarca();
        var CmbTipoDoc = new SistIntegral.Componentes.Objetos().ComboTipoDocumento();
        //var CmbCtaDepre = new SistIntegral.Componentes.Objetos().ComboCtaDepreciacion();
        var CmbResponsable = new SistIntegral.Componentes.Objetos().ComboResponsable();
        var CmbEstadoInventario = new SistIntegral.Componentes.Objetos().ComboEstadoInventario();
        var ObjUbicacion = new SistIntegral.Componentes.Objetos().ObjUbicacion();

        var StoreControlInventarioE = Ext.create('Ext.data.Store', {
            model: 'Inventario',
            pageSize: 25,
            proxy: {
                type: 'ajax',
                url: 'inventario/IndexById/' + (btn.itemId == 'edit' ? btn.Seleccion.get('IdInventario') : ''),
                reader: {
                    type: 'json',
                    root: 'grid'
                }
            }
        });

        StoreControlInventarioE.on('load', function(store, records) {
            Ext.getCmp('FrmControlInventario').loadRecord(records[0]);

            var IdCCosto = records[0].get('IdCCosto');
            var IdProveedorCliente = records[0].get('IdProveedorCliente');
            var IdMarca = records[0].get('IdMarca');
            var IdTipoDocumento = records[0].get('IdTipoDocumento');

            var StoreProyectoE = Ext.create('Ext.data.Store', {
                model: 'Proyecto',
                pageSize: 25,
                proxy: {
                    type: 'ajax',
                    url: 'proyecto/IndexById/' + records[0].get('IdProyecto'),
                    reader: {
                        type: 'json',
                        root: 'grid'
                    }
                }
            });
            StoreProyectoE.on('load', function(store, records) {
                Ext.getCmp('CmbProyecto').getStore().loadRecords(records);
                Ext.getCmp('CmbProyecto').setValue(records[0].get('Id'));

                if (IdCCosto) {
                    var StoreCCostoE = Ext.create('Ext.data.Store', {
                        model: 'CCosto',
                        proxy: {
                            type: 'ajax',
                            url: 'ccosto/IndexById/' + IdCCosto,
                            reader: {
                                type: 'json',
                                root: 'grid'
                            }
                        }
                    });
                    StoreCCostoE.on('load', function(store, records) {
                        Ext.getCmp('CmbCCosto').getStore().loadRecords(records);
                        Ext.getCmp('CmbCCosto').setValue(records[0].get('IdCCosto'));
                    });
                    StoreCCostoE.load();
                }
            });
            StoreProyectoE.load();

            Ext.getCmp('CmbPersonal').getStore().loadRecords(records);
            Ext.getCmp('CmbPersonal').setValue(records[0].get('IdPersonal'));


            Ext.getCmp('CmbCatalogo').getStore().loadRecords(records);
            Ext.getCmp('CmbCatalogo').setValue(records[0].get('IdCatalogo'));

            if (IdTipoDocumento) {
                Ext.getCmp('CmbTipoDocumento').getStore().loadRecords(records);
                Ext.getCmp('CmbTipoDocumento').setValue(records[0].get('IdTipoDocumento'));
            }
            if (IdProveedorCliente) {
                Ext.getCmp('CmbProveedor').getStore().loadRecords(records);
                Ext.getCmp('CmbProveedor').setValue(records[0].get('IdProveedorCliente'));
            }
            Ext.getCmp('CmbAnio').getStore().loadRecords(records);
            Ext.getCmp('CmbAnio').setValue(records[0].get('IdEjercicio'));

            //
            Ext.getCmp('CmbMes').getStore().loadRecords(records);
            Ext.getCmp('CmbMes').setValue(records[0].get('IdMes'));

            if (IdMarca) {
                Ext.getCmp('CmbMarca').getStore().loadRecords(records);
                Ext.getCmp('CmbMarca').setValue(records[0].get('IdMarca'));
            }

            Ext.getCmp('CmbEstadoInventario').getStore().loadRecords(records);
            Ext.getCmp('CmbEstadoInventario').setValue(records[0].get('IdEstadoInventario'));
        });

        var Frm = Ext.create('Ext.form.Panel', {
            id: 'FrmControlInventario',
            frame: true,
            //bodyPadding:'5',
            fieldDefaults: {
                msgTarget: 'side',
                labelAlign: 'left',
                labelWidth: 80,
                anchor: '100%'
            },
            items: [CmbCCostoProyecto, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [ObjUbicacion, CmbResponsable, {
                            xtype: 'hiddenfield',
                            id: 'IdUbicacion',
                            name: 'IdUbicacion',
                            allowBlank: false
                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [CmbCatalogo, CmbProveedor]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [CmbAnio, CmbMes]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [CmbMarca, {
                            xtype: 'datefield',
                            name: 'FechaIngreso',
                            allowBlank: true,
                            fieldLabel: 'F Ingreso',
                            width: 330
                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [CmbTipoDoc, {
                            xtype: 'textfield',
                            name: 'Nrodocumento',
                            allowBlank: true,
                            width: 330,
                            fieldLabel: 'Nro Doc',
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [{
                            xtype: 'textfield',
                            name: 'Codigo',
                            allowBlank: false,
                            fieldLabel: 'C&#243digo',
                            width: 330,
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }, {
                            xtype: 'textfield',
                            name: 'Serie',
                            allowBlank: true,
                            fieldLabel: 'Serie',
                            width: 330


                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [{
                            xtype: 'textfield',
                            name: 'Motor',
                            allowBlank: true,
                            fieldLabel: 'Motor',
                            width: 330,
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }, {
                            xtype: 'textfield',
                            name: 'Placa',
                            allowBlank: true,
                            fieldLabel: 'Placa',
                            width: 330,
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [{
                            xtype: 'numberfield',
                            name: 'Costo',
                            allowBlank: true,
                            fieldLabel: 'Costo',
                            width: 330,
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }, {
                            xtype: 'numberfield',
                            name: 'Cantidad',
                            allowBlank: false,
                            width: 330,
                            fieldLabel: 'Cantidad',
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }
                    ]
                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [{
                            xtype: 'checkboxfield',
                            name: 'Donacion',
                            fieldLabel: 'Donacion',
                            width: 330,
                            boxLabel: 'Donaci&#243n',
                            inputValue: 'true'
                        }, {
                            xtype: 'numberfield',
                            name: 'Depreciacion',
                            allowBlank: true,
                            width: 330,
                            fieldLabel: 'Depreciaci&#243n',
                            //fieldStyle : 'text-transform: uppercase'
                            vtype: 'uppercase'

                        }
                    ]
                }, {
                    xtype: 'textfield',
                    name: 'DescripcionProducto',
                    allowBlank: false,
                    //        grow:true,
                    //        growMax : 60,
                    fieldLabel: 'Descripci&#243n'
                    //fieldStyle : 'text-transform: uppercase'
                    //vtype: 'uppercase'

                }, {
                    xtype: 'container',
                    layout: 'hbox',
                    defaults: {
                        margin: '0 5 2 0'
                    },
                    items: [CmbEstadoInventario, {
                            xtype: 'textfield',
                            name: 'Observacion',
                            width: 330,
                            //        grow:true,
                            //        growMax : 60,
                            allowBlank: true,
                            fieldLabel: 'Observaci&#243n'
                            //vtype: 'uppercase'
                        }
                    ]
                }, {
                    xtype: 'hiddenfield',
                    id: 'IdResponsableInventario',
                    name: 'IdResponsableInventario',
                    allowBlank: false
                }, {
                    xtype: 'hiddenfield',
                    id: 'IdEstadoDelInventario',
                    name: 'IdEstadoDelInventario',
                    allowBlank: false
                }, {
                    xtype: 'hiddenfield',
                    id: 'IdDepreciacion',
                    name: 'IdDepreciacion',
                    allowBlank: false
                }
            ],
            buttons: [{
                    text: 'Guardar',
                    handler: function() {
                        var form = this.up('form').getForm();
                        if (form.isValid()) {
                            form.submit({
                                url: btn.hrefTarget + (btn.itemId == 'edit' ? btn.Seleccion.get('IdInventario') : ''),
                                success: function(form, action) {
                                    Ext.getCmp('gridControlInventario').getStore().load();
                                    Ext.getCmp('WControlInventario').close();
                                    Ext.MessageBox.show({
                                        msg: 'Registro Creado Correctamente...',
                                        progressText: 'Actualizando...',
                                        width: 300,
                                        icon: 'ext-mb-download'
                                    });
                                    setTimeout(function() {
                                        Ext.MessageBox.hide();
                                    }, 1000);
                                },
                                failure: function(form, action) {
                                    //...
                                }
                            });
                        }
                    }
                }, {
                    text: 'Limpiar',
                    handler: function() {
                        this.up('form').getForm().reset();
                    }
                }
            ]
        });
        if (btn.itemId == 'edit') {
            StoreControlInventarioE.load();
        }
        return Frm;
    },

    Window: function(btn) {
        var Seleccion;
        if (btn.itemId == 'edit') {
            Seleccion = Ext.getCmp('gridControlInventario').getSelectionModel().getSelection()[0];
            if (!Seleccion) {
                Ext.Msg.show({
                    title: 'Advertencia',
                    msg: 'Seleccione Registro a Editar',
                    icon: Ext.MessageBox.WARNING,
                    buttons: Ext.Msg.OK
                });
                return false;
            } else {
                btn.Seleccion = Seleccion;
            }
        }

        var Item = this.Formulario(btn);

        var win = Ext.create('widget.window', {
            id: 'WControlInventario',
            title: btn.getText() + ' Inventario',
            closable: true,
            bodyPadding: '5',
            bodyBorder: false,
            width: 730,
            minWidth: 200,
            height: 430,
            layout: 'fit',
            modal: true,
            items: [Item]
        });

        return win.show();
    }
});